{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 岭回归"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "np.random.seed(42)\n",
    "x = np.random.uniform(-3.0, 3.0, size=100)\n",
    "X = x.reshape(-1, 1)\n",
    "y = 0.5 * x + 3 + np.random.normal(0, 1, size=100)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1073cee10>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(x, y)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.linear_model import LinearRegression\n",
    "from sklearn.model_selection import train_test_split\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "from sklearn.preprocessing import PolynomialFeatures\n",
    "from sklearn.metrics import mean_squared_error\n",
    "from sklearn.pipeline import Pipeline\n",
    "\n",
    "def PolynomialRegression(degree):\n",
    "    return Pipeline([\n",
    "        (\"poly\", PolynomialFeatures(degree=degree)),\n",
    "        (\"std_scaler\", StandardScaler()),\n",
    "        (\"lin_reg\", LinearRegression())\n",
    "    ])\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.model_selection import train_test_split"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "np.random.seed(666)\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "167.94010867666628"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.metrics import mean_squared_error\n",
    "poly_reg = PolynomialRegression(degree = 20)\n",
    "poly_reg.fit(X_train, y_train)\n",
    "\n",
    "y_poly_predict = poly_reg.predict(X_test)\n",
    "mean_squared_error(y_test, y_poly_predict)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10eda7c18>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "X_plot = np.linspace(-3, 3, 100).reshape(100, 1)\n",
    "y_plot = poly_reg.predict(X_plot)\n",
    "\n",
    "plt.scatter(x, y)\n",
    "plt.plot(X_plot[:, 0], y_plot, color='r')\n",
    "plt.axis([-3, 3, 0, 6])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10e85cb00>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "def plot_model(model):\n",
    "    X_plot = np.linspace(-3, 3, 100).reshape(100, 1)\n",
    "    y_plot = model.predict(X_plot)\n",
    "\n",
    "    plt.scatter(x, y)\n",
    "    plt.plot(X_plot[:, 0], y_plot, color='r')\n",
    "    plt.axis([-3, 3, 0, 6])\n",
    "    plt.show()\n",
    "\n",
    "plot_model(poly_reg)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.linear_model import Ridge\n",
    "def RidgeRegression(degree, alpha):\n",
    "    return Pipeline([\n",
    "        (\"poly\", PolynomialFeatures(degree=degree)),\n",
    "        (\"std_scaler\", StandardScaler()),\n",
    "        (\"ridge\", Ridge(alpha=alpha))\n",
    "    ])\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1.323349275392959"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ridge_reg1 = RidgeRegression(20, 0.0001)\n",
    "ridge_reg1.fit(X_train, y_train)\n",
    "mean_squared_error(y_test, ridge_reg1.predict(X_test))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10e99e710>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_model(ridge_reg1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1.1888759304218481"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ridge_reg2 = RidgeRegression(20, 1)\n",
    "ridge_reg2.fit(X_train, y_train)\n",
    "mean_squared_error(y_test, ridge_reg2.predict(X_test))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1a1313aa58>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_model(ridge_reg2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1.3196456113086197"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ridge_reg3 = RidgeRegression(20, 100)\n",
    "ridge_reg3.fit(X_train, y_train)\n",
    "mean_squared_error(y_test, ridge_reg3.predict(X_test))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1a13064a20>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_model(ridge_reg3)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1.8408455590998372"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ridge_reg4 = RidgeRegression(20, 10000000)\n",
    "ridge_reg4.fit(X_train, y_train)\n",
    "mean_squared_error(y_test, ridge_reg4.predict(X_test))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAW4AAAD8CAYAAABXe05zAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAGI1JREFUeJzt3W+MXGd1x/Hfsb1JNk7IvmBbnCUWQUVJETQOjFIqVxUYStKAwKWtKKIVUitZqNAGJFIMqEW0ohhZ5Y8qXuAWWhCBgkiIKlIwVAZRoiawGxsI2K5QSyEbIKHtkgS7YW2fvthds96dmXtn5j73+XO/H8lKdj2784xn7rnnOc+5zzV3FwAgH1tiDwAAMBoCNwBkhsANAJkhcANAZgjcAJAZAjcAZKZW4DazGTP7pJmdMLPjZvYroQcGAOhvW83HvVfSZ939t83sIkmXBhwTAGAIq7oAx8yeIOlrkp7qXK0DANHVybifKulhSX9vZtdJWpB0i7v/ZP2DzGyfpH2StH379mdfe+21TY8VAAZaOrWsxaXTOrcuv9xiprmZac1cOhVxZPUsLCz8yN1n6zy2Tsbdk3SPpN3ufq+ZvVfSI+7+Z4N+ptfr+fz8/ChjBoCJ7D5wRItLpzd9f25mWnfv3xNhRKMxswV379V5bJ3FyQckPeDu965+/UlJzxp3cAAQwoN9gvaw7+esMnC7+w8kfc/Mrln91vMlfSvoqABgRFfOTI/0/ZzV7eP+Y0m3mdnXJe2S9FfhhgQAo7v1xms0PbX1gu9NT23VrTdeM+An8lWrHdDdj0mqVXsBgBj2Xj8nSTp4+KQeXDqtK2emdeuN15z/fknq9nEDQPL2Xj9XZKDeiEveASAzBG4AyAyBGwAyQ+AGgMwQuAEgMwRuAMgMgRsAMkMfN9Bxdx5d7MRFKyUhcAMddufRRb3pjm/o9PJZSdLi0mm96Y5vSBLBO2GUSoAOO3j45Pmgveb08lkdPHwy0ohQB4Eb6LAubYVaEgI30GFd2gq1JARuoMO6tBVqSVicBDqsS1uhloTADXRcV7ZCLQmlEgDIDIEbADJD4AaAzFDjBoAWNbHFAIEbiID9Qbpp2BYDoyBwAy1jf5DuamqLAWrcQMvYH6S7mtpigIwbaBn7g8QTu0R15cy0Fvu8z1fOTOs7I/weMm6gZewPEsdaiWpx6bRcPytR3Xl0sbUxNLXFAIEbaBn7g8SRQolq7/VzesfLnqm5mWmZpLmZab3jZc+kqwRIHfuDxJFKiaqJLQZqBW4z+46kRyWdlXTG3XsTPSvQcewP0r5h9eXcjFIqeZ677yJoA8hRVYnqzqOL2n3giK7ef5d2HzjSau17VJRKAHTCsBJVbr31dQO3S/qcmbmk97v7oYBjAoAgBpWohi1c5hy4d7v7g2b2c5I+b2Yn3P1L6x9gZvsk7ZOknTt3NjxMAAgnlYXLumrVuN39wdX/PiTpU5Ju6POYQ+7ec/fe7Oxss6MEgIBy662vDNxmtt3MLl/7f0kvlHR/6IEBiCunxbpJ5dZbX6dU8vOSPmVma4//qLt/NuioAESV22LdpHLrrTd3b/yX9no9n5+fb/z3AmjH7gNH+vY8z81M6+79e1obR+y9RdpkZgt1261pBwSwSQqLdV3L+kfBXiUANklhsS6FvUUmEXKNgMANYJMUFutSyPrHFXonQgI3gE2a2sVuEilk/eMKPVugxg2gr9gbYd164zUX1LiltFv01gs9WyDjBpCkFLL+cYWeLZBxA0hW7Kx/XKFnCwRuAGhY6At6CNwAEEDI2QI1bgDIDIEbADJD4AaAzFDjBobo0iZHyAeBGxiATY7QTwonc0olwAC5b3KE5oXeg6QuAjcwQM6bHCGMVE7mlEqAAa6cme57M4EcNjnC5PqVRFI5mZNxAwOksLUp4hhUErlieqrv49s+mRO4gQFy3uQIkxlUEjHTppO5aSWwt3lD5aJKJTFWe1NYYUY4uW5ylKtUjqdBpY+lU8t698t36eDhk1pcOi2TtHbX3ja7jorJuGOs9qaywgyUIKXjadi2rHuvn9Pd+/dobmZaG2+13tZCZTGBO8ZqbyorzEAJUjqe6qxvxFyoLCZwx/hHTGWFGShBSsdTnfWNmLdWK6bGHaN1i3YxoDmpHU9V6xsxb61WTMYdo3WLdjGgObkdTzG7jsx9Y3l9cr1ez+fn5xv/vVXoKgHy0e/YkcLdNSZ1Zrbg7r1ajy0pcAPIw8YNvKSV7DrHPvmmkrdRAncxNW6MjtkChgn5+RjWQZLTZzDWDpK1a9xmttXMjprZp4ONBq1JqWcW6Qn9+Uipg2QSsVoYR1mcvEXS8VADQbtS6plFekJ/PmK20jUp1gmoVuA2sydLepGkvws6GrSmlIwHYYT+fOTWQTJIrBNQ3Yz7PZL+VNK5QQ8ws31mNm9m8w8//HAjg0M4pWQ8CCP056OUDbxinYAqA7eZvVjSQ+6+MOxx7n7I3Xvu3pudnW1sgAijlIwHYbTx+Vjb8+PdL98lSXr9x4+1usNeE2KdgOp0leyW9BIzu1nSJZKeYGYfcfffCzoyBLX2waKrpLuGdY209fko4b6eMXaQHKmP28yeK+kN7v7iYY+jjztNtP+lrc33J5U+6t0HjvS9zH1uZlp379/T2jhSMEofdzGXvGM42v/S1vb7k0pXEYvk4xkpcLv7F6uybaQplQMV/bX9/tQNmHceXdTuA0d09f67gtSfWSQfDxl3R5DZpK3t96dOwGxjFsAi+XgI3B1BZjOZ0jLPOgGzjVlAKW2BbWOvko6IuXdw7trofGj7/anTNdLWLCBGV0buC/UE7o6g/W98bWyIFOP9qQqYqd3YoCkltCASuDuEO5aPJ1Tm2S/rS6kFrtRZWgk7ExK4gQohMs8csr5SZ2klLNQTuIEKITLPXLK+HGdpVfXrEkpAdJUAFUJ0PpSQ9aWoTgtjCS2IZNxADU1nniVkfWtS6tCoM5MpoQRE4AYiKGXhL7Vafd2ZTI4loPUolQARlHLhSRsX6Yxy8VNXLjQj4wYiyT3rk+pluJOUUkbN6EuZyVQhcAMYW1WtftJSyqjdNynVr0PW/gncAMZWleFO2vY4TvdNCjOZ0LV/atxAwUJvjlVVq5+07THXmnXo2j8ZN7KXUjtaStrq+BiW4U7a9phrzTp0nz4ZN7LGnX0GS+HmGZNe7JJr903omQIZN7KWy6XjMaRwdWYTi4Up1KxHFXqmQODusBJKDCkEp1TFvDqzhM/WJEJ3txC4Oyq1K97GVdKl402LVR8u5bM1qZAzBWrcHZVC/bMJJWwYFEqs+nApn62UkXF3VCklhpQuuEhRjPpwKZ+tlCUbuLteIwutpBJDjotXJbtiekpLp5c3fT/Hz1aqkgzc1MjCS60/duOJ+nnXzuoLJx4u4sSdchLS9NjuPLqon/z0zKbvT20xylcNSjJw0+IVXkolhn4n6o/c893zf5/ziTvlJCTE2A4ePqnls77p+5ddsi366y1JkoGbGtmFQmVsqZQY+p2oN8r1xJ1yEhJibIOO0aVTm0snGF+SgTun+mvoaXDKGVtT6p6Qczxxp5yEhBhbTsduzirbAc3sEjP7ipl9zcy+aWZvCz2oXFq82rjcugutVXUP6pAHf6jNmFLeJCnE2HI5dnNXp4/7cUl73P06Sbsk3WRmzwk5qFz2J2gjqKacsTWl38G+UciDP+QJOOVAFmJsuRy7uasslbi7S3ps9cup1T+bVx8alkr9dZg2gmoXpp79Fkrb7CoJWYdOaRF4o1Bjy+HYzV2tGreZbZW0IOkXJL3P3e/t85h9kvZJ0s6dO5scY7LaCKqpte2FEvNgD30CTjmQhRhbyu2Ppah1ybu7n3X3XZKeLOkGM3tGn8cccveeu/dmZ2ebHmeS2pgGM/UML+U6dG7YZrcdI3WVuPuSmX1R0k2S7g8yooy0NQ1OJWMrNZPqyqymDSm3P5akMnCb2ayk5dWgPS3pBZLeGXxkmUglqIZWcltiynXo3HRhMT0FdTLuHZI+tFrn3iLpE+7+6aE/8d3vSq95TQPDk+TB10FRw7n7FvXmPpcyn/v8NulZ+Qe4vat/JEmPSPrbeGPJ2V/f1/+S9+0XbZP+6K4II2pQE7GooXhmHiAw9qamfH5mprlfaNbc78JYfvSTnw78uyduv6jFkSBlj585p8ceP3NB25lJuuzibbp4WwG7SDcRiwb8DvvhDxfcvVfnV4S5cvK666T5+aEPKbVeWqqXHjjSt4NmbmZad+/fE2FEzeLz2IyLJX2Gf8vxjHBSiHLJe8n10lKVvIDH57FZXVn3iSnK3KULl3GXZlBboqQgl4q3ic8jchMl44618sx0eDIbM6lSMlU6IZCbKIG7rcu41wfqmUun9Nj/ndHyuZVlk7aDTIknjVJ6druwrQDKEqVU0sYVhxuv4PrfU8vng/aatqbDpV5NVkqmmvJGUEA/UTLuNi54qLM5v9ROkCklM92olEw15QtwqmZqKc7kUhxTaaLdSCH0ynPdgByyPLP2oQ2dmcY6UErqNEmxE6JqDSHFNYYUx1SiAjri+6sTkEOXZ9Y+tFdMT409xnGfs40yDBtghVXV7ZJiN0yKYypRkrcua0K/bHBqq2n7Rdv049PLrZVnTi+f1SVTWzQ9tTVIZhq7DJNippqyUWZHVTO1FNcYUhxTiVoJ3DGm8jHqlsNulPrul+8KMpY6Bwo1xzSMWkaoWkNIcY0hxTHFEPqYCx64Y9a82s4Gh31oQ42l6kCh5piOUWdHVWsIKa4xpDimtrVxzAWvcXep5hWjrazqObv079+mcW4uPGoZoWoNIcU1hhTH1LY2jrngGXeXal4xyjMbn3Pm0im5S6//+DEdPHyybzYupfnvn0tJZ9yMapwyQtVMLcU1hhTH1KY2Yl7wwN21mleMD+3ac/YLKKb+d3ae5N8/RIDNqaQz7oIwZYRuaCPmBS+VTFo+GGdK2lX9AoprZT/k9SYJFqHaD3Mq6YybUVFG6IY2SqbBM+5Jygexs7Bcpu5rBgUO10qQaOJ1hGo/zKmkNklG1fUyQhe0UTJtpR1w3A9rzB7l2CeNcQwKKE3e7CBUgM2ppEbJA1VCn6CTvnIyZhaW09R9TRtTtEGBdNIAm9NGT5Q8EFvSV07GzMJymrqvaWOKFirbjNGRM0kpjJIHYko6cMeckuY0dV8vdEAJGWDbDIY5lsKANWHu8t7r+XzFzYLramOBsN9zSOp70vitZ8/pCycezmbBsusGfX52F37zY+THzGrf5T35wB3axsxLWgnQa/dTXH/QP+/aWd2+sHjBY9f6pOcI4skZ9t6+/uPH+va3m6T/PPCi1sYIrBklcCddKmnDsEXIu/fvuSAQ7z5wpG+ftMRUO0XD3ttcS2GAlHhXSRtGWYSsWphMveuka4a9tzl1sQAbdT5wj9LeVicbS7nrpGuGvbe09CFnQUolJ37wqK7ef9fIV0mmfvutfo/diKl2OqreW1r6kKvKwG1mV0n6sKQnSTon6ZC7v3fYzyyfPXfBPhbS8Lpv7D27pXrtbesf228DJ6baaUn5JsDAJCq7Ssxsh6Qd7n6fmV0uaUHSXnf/1qCfuXjH03zHq95z/uuqFqtRWrNS2j8k1lhS+jcA0IxGu0rc/fuSvr/6/4+a2XFJc5IGBu6Nquq+wxaR1gepS6a26PTyufN/H7uTI8ZUmwtHAIy0OGlmT5F0vaR7+/zdPjObN7P5s6d+fMHfVdV9B/39FdNTF2whuj5or+laJ0eOe6gAaFbtwG1ml0m6XdLr3P2RjX/v7ofcvefuva2XXnH++3XqvoNas8w0dCFwTZc6OXLcQwVAs2oFbjOb0krQvs3d76h6/NTWLSO1WA1qzVo6tVxneJ3q5Ai1O1+TuPkFEFadrhKT9AFJx939XXV+6bVPulzzfS4bHrao1q9ePOyeiefHJ410N53cF/VS3wuaGjwQXp2Me7ek35e0x8yOrf65edQnGueWV/1KKOuZpFc+Z+dId9Np+pZbbUv9wpHUavBk/yhRna6SL2vzbQtHNs7dbDb24V4xPSUzaenU8sgZc8y76TQt5QtHUqrBk/2jVK1tMjXJDVabOMjGef5xSysllGTGldLmTSWdrIH1WturJPai2qjPP25ppZSSzLhS2rwppexfomyD5rQWuGMf0KM+/7i12q7XeFOqwcdOFtbr+gkdzWqtVBJ734hRn3/cbC2lLC9WjTeVGnxKHTiUbdCkVm+kEPuAHuX5x63VUuNNR92TdRtrEimd0JG/zt8BZ5Bxs7WUsjyCRfXJuq1ZSUondOSv8zdSGGTcWi013ry0tSYRe40HZSHjHmLc0k7sktCalLL/VLU1K4m9xoOyELgLRrCo1mYJI5UTOvJH4C4cwWI4ZiXIEYEbncasBDkicHdI7pfihxo/sxLkhsDdEblvuJT7+IEm0Q7YEaldij+q3McPNInA3RG5X4yT+/iBJlEq6YhJ295i18e58hD4GTLujpjkyr0UdrYr4cpDtnVFU8i4O2JY21tVNp3CZlW5t+2xuIomEbg7pF/bW52Akkp9Oee2vRROfigHpZKOq9OtwWZVk0vl5IcyELg7rk5AKaG+HBsnPzSJwN1xdQJKSlvV5oqTH5pEjbvj6m6ylHN9OQW5L64iLZ0I3LF7kFNGQGkPJz80pfjATRtWNQIKkJfia9zscQGgNMUHbtqwAJSmMnCb2QfN7CEzu7+NATWNNiwApamTcf+DpJsCjyMY2rAAlKZycdLdv2RmTwk/lDDomgBQmuK7SiS6JgCUpbHAbWb7JO2TpJ07dzb1azEietaB8jXWVeLuh9y95+692dnZpn4tRpDCvtkAwiu+HbBL6FkHuqFOO+DHJP2bpGvM7AEz+8Pww8I46FkHuqFOV8kr2hgIJsd9GYFuoFQSQKx7C9KzDnRDJ9oB2xRzUyt61oFuSCZwj9vGllr7W+x7C9KzDpQvicA9bpaa4patLBACCC2JGve4bWwptr+xqRWA0JII3ONmqSlmtywQAggticA9bpaaYnbLjXUBhJZEjbvuDWub+rnQWCAEEFISgXvcNjba3wB0kbl747+01+v5/Px8478XAEplZgvu3qvz2CRq3ACA+gjcAJAZAjcAZIbADQCZIXADQGYI3ACQmST6uFOQ2i6DADAIgVtp7jIIAINQKlGauwwCwCAEbqW5yyAADELgVpq7DALAIARusYc2gLywOCl2GQSQFwL3KvbQBpALSiUAkBkCNwBkhsANAJkhcANAZmoFbjO7ycxOmtm3zWx/6EEBAAarDNxmtlXS+yT9hqSnS3qFmT099MAAAP3VybhvkPRtd/8Pd/+ppH+U9NKwwwIADFKnj3tO0vfWff2ApF/e+CAz2ydp3+qXj5vZ/ZMPL0lPlPSj2IMIiNeXN15fvmpfql0ncFuf7/mmb7gfknRIksxsvu5t5nNT8muTeH254/Xly8zm6z62TqnkAUlXrfv6yZIeHHVQAIBm1AncX5X0NDO72swukvS7kv4p7LAAAINUlkrc/YyZvVbSYUlbJX3Q3b9Z8WOHmhhcokp+bRKvL3e8vnzVfm3mvqlcDQBIGFdOAkBmCNwAkJkggdvM/tLMvm5mx8zsc2Z2ZYjnicXMDprZidXX+Ckzm4k9piaZ2e+Y2TfN7JyZFdF6Vfq2DWb2QTN7qMTrJ8zsKjP7gpkdX/1c3hJ7TE0ys0vM7Ctm9rXV1/e2yp8JUeM2sye4+yOr//8nkp7u7q9u/IkiMbMXSjqyunD7Tkly9zdGHlZjzOwXJZ2T9H5Jb3D32v2lKVrdtuHfJf26VtpbvyrpFe7+ragDa5CZ/ZqkxyR92N2fEXs8TTKzHZJ2uPt9Zna5pAVJe0t5/8zMJG1398fMbErSlyXd4u73DPqZIBn3WtBetV19LtjJmbt/zt3PrH55j1Z624vh7sfd/WTscTSo+G0b3P1Lkv4n9jhCcPfvu/t9q///qKTjWrmiuwi+4rHVL6dW/wyNmcFq3Gb2djP7nqRXSvrzUM+TgD+Q9JnYg8BQ/bZtKObA7xIze4qk6yXdG3ckzTKzrWZ2TNJDkj7v7kNf39iB28z+xczu7/PnpZLk7m9x96sk3SbpteM+TyxVr2/1MW+RdEYrrzErdV5fQWpt24C0mdllkm6X9LoNs/rsuftZd9+lldn7DWY2tNw19s2C3f0FNR/6UUl3SXrruM8VQ9XrM7NXSXqxpOd7hs3wI7x/JWDbhsyt1n5vl3Sbu98RezyhuPuSmX1R0k2SBi40h+oqedq6L18i6USI54nFzG6S9EZJL3H3U7HHg0ps25Cx1cW7D0g67u7vij2eppnZ7FpnmplNS3qBKmJmqK6S27WyReE5Sf8l6dXuvtj4E0ViZt+WdLGk/1791j2Fdc38pqS/kTQraUnSMXe/Me6oJmNmN0t6j362bcPbIw+pUWb2MUnP1cq2pz+U9FZ3/0DUQTXEzH5V0r9K+oZWYookvdnd/zneqJpjZr8k6UNa+WxukfQJd/+LoT+T4SwfADqNKycBIDMEbgDIDIEbADJD4AaAzBC4ASAzBG4AyAyBGwAy8//JR7xpe2SJLAAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1a12fdd940>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_model(ridge_reg4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
